/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ComponenteDatos;

import ComponenteClase.Producto;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @ MIGUEL ARANA - KENNETH ZEVALLOS - VITTON NUÑEZ
 */
public interface ProductoDAO{

    public Producto insertarProducto(Producto p) throws SQLException;

    public Producto buscarProducto(int codigo) throws SQLException;

    public Producto buscarProducto(int codigo, Producto p) throws SQLException ;

    public Producto buscarProductoNombre(String nom) throws SQLException;

    public Producto buscarProductoNombre(String nom, Producto p) throws SQLException;
    
    public Producto buscarProductoProvNombre(String propv,String nombre) throws SQLException;

    public Producto buscarProductoProvNombre(String propv,String nombre, Producto p) throws SQLException;
    
    public Producto buscarProductoCateg(int CatCodigo) throws SQLException;

    public Producto buscarProductoCateg(int CatCodigo, Producto p) throws SQLException;
    
    public boolean actualizarProducto(Producto p) throws SQLException;
    
    public List<Producto> mostrarProducto() throws SQLException;
    
    public  List<Producto> listarProductoPorNombre(String nombre);
    
    public  List<Producto> listarProductoPorNombreEstado(String codigo);
    
    public List<Producto> listarProductoPorCodProveedor(String nombre);
    
    public List<Producto> listarProductoPorCodProveedorEstado(String codigo);
    
    public List<Producto> listarProductoPorCodigo(String codigo);
    
    public List<Producto> listarProductoPorCodigoEstado(String codigo);

    public List<Producto> listar(String atributo, String parametro, String comparador);
    
    public List<Producto> consultarSQL(String sql);
}